package pro.cherish.smartfile.common.enums.biz;

import cn.hutool.core.util.StrUtil;
import lombok.Getter;
import pro.cherish.smartfile.common.enums.StatusEnum;
import pro.cherish.smartfile.module.resp.TransmissionStatusResp;

/**
 * @author 创建人：lys
 * @version 版本号：V1.0
 * <p>
 * ***************************修订记录************************************
 * 2020-12-03 lys 创建该类功能。
 * **********************************************************************
 * </p>
 * @ClassName 类名：TaskStatusEnum
 * @Description 功能说明：
 * <p>
 *
 * </p>
 * **********************************************************************
 * @date 创建日期： 2020-12-03 lys
 */
@Getter
public enum TaskStatusEnum implements StatusEnum {
    CREATE("create", "新建一个上传任务"),
    FILE_ALREADY_EXIST("file_already_exist", "文件已存在"),
    FILE_ALREADY_ARCHIVE("file_already_archive", "文件归档成功"),
    FILE_ARCHIVE_FAIL("file_archive_fail", "文件归档失败"),
    MUST_RESTART("must_restart", "必须重新开始");

    private String code;
    private String msg;
    private TransmissionStatusResp transmissionStatusResp;

    TaskStatusEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    @Override
    public TransmissionStatusResp getStatus() {
        return TransmissionStatusResp.builder().code(code).message(msg).build();
    }

    @Override
    public String getCode() {
        return this.code;
    }

    @Override
    public String getDesc() {
        return StrUtil.format("code={},msg={}", code, msg);
    }

    @Override
    public boolean eq(String val) {
        return StrUtil.equals(val, this.getValue());
    }

    @Override
    public String getValue() {
        return this.getCode();
    }
}
